CoGNN: Efficient Scheduling for Concurrent GNN Training on GPUs
北航杨海龙老师组在SC 2022发表的一篇论文
存在问题
- 频繁的内存访问导致GNN训练GPU利用率低
- 先前的并行工作无法用于GNN,没有考虑到输入的不规律性
- 需要根据输入维度对所需的内存进行pre-profiling
- 需要灵活的调度策略
- 超过GPU内存后会分配给虚拟内存,可能会导致程序崩溃或耗时久。
难点
- 输入的不规则导致运行时内存消耗很难估计。
- 输入的不规则导致计算复杂度也不规则,资源分配效率低下会显著降低训练性能。
解决方案
- 将训练任务打包到队列中,并提取有关任务输入和网络结构的信息
- 配置计算图,并量化其对于GPU内存的影响
- 采用几种调度策略进行分组调度
创新点
- 全面分析了GNN GPU利用率不足的根本原因
- 通过细粒度的内存分配和调度,采用不同优化目标的调度策略设计生成并发训练任务组。
- 提出了一种内存分析策略,计算每个GNN相关的算子,并通过计算图来计算内存消耗
- 设计了一个并发GNN训练框架